@echo off
chcp 65001 >nul
echo ==========================================
echo   南昌旅游系统部署向导
echo ==========================================
echo.

:menu
echo 请选择部署方式:
echo.
echo [1] 本地部署（Windows开发环境）
echo     适合：本地测试、开发调试
echo     访问：http://localhost:8080
echo     其他人可通过内网IP访问（如：http://192.168.1.100:8080）
echo.
echo [2] 生产环境部署（云服务器）
echo     适合：正式使用、公网访问
echo     需要：Linux云服务器（阿里云/腾讯云）
echo     访问：http://your-server-ip
echo.
echo [3] 查看部署文档
echo.
echo [0] 退出
echo.
set /p choice=请输入选项 (0-3): 

if "%choice%"=="1" goto local_deploy
if "%choice%"=="2" goto production_deploy
if "%choice%"=="3" goto show_docs
if "%choice%"=="0" goto end
echo 无效选项，请重新选择
echo.
goto menu

:local_deploy
echo.
echo ==========================================
echo   开始本地部署...
echo ==========================================
echo.

REM 检查环境
echo [1/5] 检查环境...
python --version >nul 2>&1
if errorlevel 1 (
    echo ❌ 错误: 未找到Python，请先安装Python 3.8+
    pause
    goto menu
)

node --version >nul 2>&1
if errorlevel 1 (
    echo ❌ 错误: 未找到Node.js，请先安装Node.js 16+
    pause
    goto menu
)

echo ✅ Python和Node.js环境检查通过
echo.

REM 检查数据库
echo [2/5] 检查数据库连接...
cd backend
if not exist "venv" (
    echo 创建Python虚拟环境...
    python -m venv venv
)
call venv\Scripts\activate.bat

REM 检查.env文件
if not exist ".env" (
    echo ⚠️  警告: .env文件不存在
    echo 正在创建.env文件...
    (
        echo SECRET_KEY=django-insecure-change-this-in-production
        echo DEBUG=True
        echo ALLOWED_HOSTS=*
        echo DATABASE_NAME=nanchang_tour
        echo DATABASE_USER=root
        echo DATABASE_PASSWORD=
        echo DATABASE_HOST=localhost
        echo DATABASE_PORT=3306
        echo REDIS_URL=redis://localhost:6379/0
        echo AMAP_API_KEY=your_amap_api_key
    ) > .env
    echo ✅ 已创建.env文件，请根据需要修改配置
)

echo [3/5] 安装/更新依赖...
pip install --upgrade pip -q
pip install -r requirements.txt -q
echo ✅ 依赖安装完成
echo.

echo [4/5] 数据库迁移...
python manage.py migrate --noinput
if errorlevel 1 (
    echo ❌ 数据库迁移失败，请检查数据库配置
    pause
    goto menu
)
echo ✅ 数据库迁移完成
echo.

echo [5/5] 收集静态文件...
python manage.py collectstatic --noinput
echo ✅ 静态文件收集完成
echo.

cd ..\frontend
echo [前端] 安装前端依赖...
if not exist "node_modules" (
    call npm install
) else (
    echo 前端依赖已存在，跳过安装
)
echo ✅ 前端依赖检查完成
echo.

cd ..
echo ==========================================
echo   本地部署完成！
echo ==========================================
echo.
echo 下一步操作:
echo   1. 启动后端: scripts\start_backend.bat
echo   2. 启动前端: scripts\start_frontend.bat
echo   或者使用一键启动: scripts\start_all.bat
echo.
echo 访问地址:
echo   前端: http://localhost:8080
echo   后端API: http://localhost:8000
echo.
echo 让其他人访问:
echo   1. 查看本机IP: ipconfig
echo   2. 其他人访问: http://你的IP:8080
echo   3. 确保防火墙允许8080和8000端口
echo.
pause
goto menu

:production_deploy
echo.
echo ==========================================
echo   生产环境部署指南
echo ==========================================
echo.
echo 生产环境部署需要在Linux服务器上进行，请参考以下文档:
echo.
echo 📚 部署文档:
echo   - docs\guides\快速部署步骤.md
echo   - docs\guides\完整部署指南.md
echo   - docs\guides\部署常见问题解答.md
echo.
echo 🚀 快速步骤:
echo   1. 准备Linux云服务器（Ubuntu 20.04+）
echo   2. 上传项目代码到服务器
echo   3. 运行: scripts\setup_server.sh
echo   4. 运行: scripts\deploy_production.sh
echo   5. 配置Nginx和域名
echo.
echo 💡 提示:
echo   - 推荐使用阿里云、腾讯云等云服务商
echo   - 服务器配置建议：2核4GB，40GB硬盘
echo   - 需要配置域名和SSL证书（可选）
echo.
pause
goto menu

:show_docs
echo.
echo ==========================================
echo   部署文档列表
echo ==========================================
echo.
echo 📖 主要文档:
echo   - 部署说明.md - 部署方式选择
echo   - docs\guides\快速部署步骤.md - 5步快速部署
echo   - docs\guides\完整部署指南.md - 详细部署指南
echo   - docs\guides\本地部署指南.md - Windows本地部署
echo   - docs\guides\部署常见问题解答.md - 问题解答
echo   - docs\guides\部署检查清单.md - 检查清单
echo.
echo 📝 脚本文件:
echo   - scripts\deploy_local.bat - 本地部署脚本
echo   - scripts\deploy_production.bat - 生产部署脚本
echo   - scripts\start_all.bat - 一键启动脚本
echo.
pause
goto menu

:end
echo 感谢使用！
exit /b 0


